#ifdef	__cplusplus
extern "C" {
#endif

#define IMAGE_SUCCESS       0
#define IMAGE_FAILURE       -1

#define MAX_NUMBER_IMAGES   50          //!< Numero maximo de imagens que podem ser criadas.

    /**
     * @brief Cria um nova imagem.
     * @param int x                 Posicao x da imagem criada.
     * @param int y                 Posicao y da imagem criada.
     * @param char *filename        Caminho do arquivo de imagem png.
     * @return int                  Retorna o id da imegem criada ou IMAGE_FAILURE em caso de falha.
     */
    extern int image_create(unsigned int x, unsigned int y, unsigned char *filename);

    extern signed int image_destroy(signed int imageId);

    /**
     * @brief Exibe a imagem
     * @param int imageId           Id da imagem.
     * @return int                  Retorna IMAGE_SUCCESS ou IMAGE_FAILURE.
     */
    extern int image_draw(int imageId);

    /**
     * @brief Seta se a imgem pode ser visivel ou nao.
     * @param int imageId           Id da imagem.
     * @param char visible          true (1) ou false (0).
     * @return int                  Retorna IMAGE_SUCCESS ou IMAGE_FAILURE.
     */
    extern int image_setVisible(int imageId, unsigned char visible);

    extern signed int image_isVisible(signed int imageId);

    extern void image_setredraw(signed int imageid);

    extern signed int image_setoffsetx(signed int imageid, signed int offset_x);

    extern signed int image_setoffsety(signed int imageid, signed int offset_y);

    extern signed int image_setwvisible(signed int imageid, unsigned int w_visible);

    extern signed int image_sethvisible(signed int imageid, unsigned int h_visible);

#ifdef	__cplusplus
}
#endif
